package cn.com.self.apis.member.entity;

import cn.com.self.apis.files.entity.Files;
import cn.com.selfsoft.smartcity.commons.entity.AbstractEntity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author liangwt
 * @since 2021-01-10
 */
@ApiModel(value = "举报信息类")
@TableName("u_report_info")
public class UReportInfo extends AbstractEntity implements Serializable {

    private static final long serialVersionUID=1L;
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;
    /**
     * 举报会员id
     */
    @NotNull
    @ApiModelProperty(value = "举报会员id")
    private Long memberId;
    /**
     * 被举报会员id
     */
    @NotNull
    @ApiModelProperty(value = "被举报会员id")
    private Long memberIdEd;
    /**
     * 举报会员名称
     */
    @TableField(exist=false)
    @ApiModelProperty(value = "举报会员名称")
    private String memberName;
    /**
     * 被举报会员名称
     */
    @TableField(exist=false)
    @ApiModelProperty(value = "被举报会员名称")
    private String memberNameEd;
    /**
     * 举报时间
     */
    @ApiModelProperty(value = "举报时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date time;
    /**
     * 内容描述
     */
    @NotNull
    @ApiModelProperty(value = "内容描述")
    private String content;
    /**
     * 状态（1审核中、2通过、3不通过）
     */
    @ApiModelProperty(value = "状态（1审核中、2通过、3不通过）")
    private String reportState;

    @ApiModelProperty(value = "举报对象id")
    private BigInteger reortObjId;

    @ApiModelProperty(value = "举报类型：1用户举报 2需求举报")
    private String reportType;

    @ApiModelProperty(value = "备注信息")
    private String remarks;

    @ApiModelProperty(value = "删除标记")
    private char delFlag;



    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    @TableField(exist=false)
    @ApiModelProperty(value = "举报附件列表")
    private ArrayList<Files> reportInfoFiles;

    public ArrayList<Files> getReportInfoFiles() {
        return reportInfoFiles;
    }

    public void setReportInfoFiles(ArrayList<Files> reportInfoFiles) {
        this.reportInfoFiles = reportInfoFiles;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getMemberIdEd() {
        return memberIdEd;
    }

    public void setMemberIdEd(Long memberIdEd) {
        this.memberIdEd = memberIdEd;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getReportState() {
        return reportState;
    }

    public void setReportState(String reportState) {
        this.reportState = reportState;
    }

    public String getMemberName() {
        return memberName;
    }

    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }

    public String getMemberNameEd() {
        return memberNameEd;
    }

    public void setMemberNameEd(String memberNameEd) {
        this.memberNameEd = memberNameEd;
    }
}
